package org.apache.rocketmq.client.java.hook;

/**
 * @课程描述:从零带你写框架系列中的课程，整个系列包含netty，xxl-job，rocketmq，nacos，sofajraft，spring，springboot，disruptor，编译器，虚拟机等等。
 * @author：陈清风扬，个人微信号：chenqingfengyangjj。
 * @date:2025/6/10
 * @方法描述：这个类的对象会配合消息拦截器是用，但在目前的版本代码中并没有真的实现消息拦截器，所以这个类中的枚举对象还派不上什么用场
 */
public enum MessageHookPoints {

    //这个枚举对象会让消息拦截器中的方法在发送消息的时候被执行
    SEND,

    //这个枚举对象会让消息拦截器中的方法在接收消息的时候被执行
    RECEIVE,

    //这个枚举对象会让消息拦截器中的方法在消费消息的时候被执行
    CONSUME,

    //这个枚举对象会让消息拦截器中的方法在确认消费消息的时候被执行
    ACK,

    //这个枚举对象会让消息拦截器中的方法在改变消息不可见时长的时候被执行
    CHANGE_INVISIBLE_DURATION,

    //这个枚举对象会让消息拦截器中的方法在提交事务消息的时候被执行
    COMMIT_TRANSACTION,

    //这个枚举对象会让消息拦截器中的方法在回滚事务消息的时候被执行
    ROLLBACK_TRANSACTION,

    //这个枚举对象会让消息拦截器中的方法在消息转发到死信队列的时候被执行
    FORWARD_TO_DLQ,
}